<%@page contentType="text/html" %>
<%@page pageEncoding="UTF-8" %>

<%@taglib prefix="f" uri="http://java.sun.com/jsf/core" %>
<%@taglib prefix="h" uri="http://java.sun.com/jsf/html" %>
<%@taglib prefix="a4j" uri="http://richfaces.org/a4j" %>
<%@taglib prefix="rich" uri="http://richfaces.org/rich" %>
<html>
<head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
    <meta HTTP-EQUIV="Pragma" CONTENT="no-cache">
    <meta HTTP-EQUIV="Cache-Control" CONTENT="must-revalidate">
    <meta HTTP-EQUIV="Cache-Control" CONTENT="no-cache">
    <meta HTTP-EQUIV="Cache-Control" CONTENT="no-store">
    <meta HTTP-EQUIV="Expires" CONTENT="0">
    <title>Goodwill - Поиск товаров клиентами</title>
    <link rel="stylesheet" href="resources/css/main.css"/>
    <link rel="stylesheet" href="resources/css/stylesheet.css"/>
    <link rel="stylesheet" href="resources/css/clients.css"/>
    <style type="text/css">
        .header {
            font-weight: bold;
            font-size: 20pt;
            color: #8b0000;
            font: "Trebuchet MS";
            padding-top: 50px;
        }

        .top {
            vertical-align: top;
        }
    </style>
    <script type="text/javascript">
        function processUpload() {
            try {
                _processUpload();
            } catch (e) {
                alert(e);
            }
        }
    </script>
</head>
<body>
<f:view>
    <jsp:include page="ClientHeaderWithoutSearch.jsp"/>

    <h:panelGroup id="pageForNotRegisteredUsers" rendered="#{not SecurityBean.isAuthorized}">
        <h:panelGrid columns="2" columnClasses="top,top">
            <h:graphicImage value="resources/img/warning_32.png"/>
            <h:panelGroup>
                <h:outputText
                        value="Загрузить заказ из файла Microsoft Excel могут только зарегистрированные пользователи."/></br>
                <h:outputText value="Вы зарегистрированы, но забыли войти в систему? Тогда Вам "/>
                <h:outputLink value="#" onclick="document.location='ClientAuthorizationPage.jsf'">
                    <h:outputText value="сюда"/>
                </h:outputLink>
                <br>
                <h:outputText value="Вы еще не зарегистрированы? "/>
                <h:outputLink value="#" onclick="document.location='ClientRegistrationPage.jsf'">
                    <h:outputText value="Регистрация."/>
                </h:outputLink>
            </h:panelGroup>
        </h:panelGrid>
    </h:panelGroup>

    <h:panelGroup id="pageForRegisteredUsers" rendered="#{SecurityBean.isAuthorized}">

        <a4j:form prependId="false" id="jsForm">
            <a4j:jsFunction name="_processUpload" action="#{clientImportExcelFileOrderBean.processUpload}"
                            reRender="orderInfo,restsProblems,uploader"/>
        </a4j:form>

        <rich:spacer height="30"/>
        <h:outputText value="Загрузить заказ из файла Excel" styleClass="header"/>
        <a4j:form>
            <h:panelGrid columns="2" columnClasses="top,top">
                <h:graphicImage value="resources/img/office/excel.png"/>
                <h:panelGroup>
                    <h:outputText
                            value="Вы можете сделать оформить заказ в нашей системе, набрав его в файле Microsoft Excel. Это делается следующим образом:"/><br/>
                    <h:outputText value="1. Вы скачиваете "/>
                    <a4j:commandLink value="файл-заготовку" action="#{clientImportExcelFileOrderBean.doGetOrderFile}"/>
                    <h:outputText value="."/><br/>
                    <h:outputText
                            value="2. В этом файле перечислены все товары, которые Вы можете заказать у нас. Вам необходимо ввести требуемое количество товара в графе \"Заказ\"."/><br/>
                    <h:outputText value="3. Нельзя ничего менять в файле, только значение в колонке \"Заказ\""/><br/>
                    <h:outputText
                            value="4. После этого необходимо загрузить этот файл обратно на сайт. Для этого нажмите кнопку \"Add\" ниже."/><br/>
                </h:panelGroup>
            </h:panelGrid>
            <rich:spacer height="10"/>

            <jsp:include page="messages.jsp"/>
            <h:panelGroup id="restsProblems">
                <h:panelGroup rendered="#{not empty clientImportExcelFileOrderBean.restsProblems}">
                    <h:dataTable value="#{clientImportExcelFileOrderBean.restsProblems}" var="item" style="color:red"
                                 border="1" rules="all" cellpadding="">
                        <h:column>
                            <f:facet name="header">
                                <h:outputText value="Код товара"/>
                            </f:facet>
                            <h:outputText value="#{item['code']}"/>
                        </h:column>
                        <h:column>
                            <f:facet name="header">
                                <h:outputText value="Доступное кол-во"/>
                            </f:facet>
                            <h:outputText value="#{item['count']}"/>
                        </h:column>
                        <h:column>
                            <f:facet name="header">
                                <h:outputText value="Запрошенное кол-во"/>
                            </f:facet>
                            <h:outputText value="#{item['requestedCount']}"/>
                        </h:column>
                    </h:dataTable>
                    <a4j:commandButton action="#{clientImportExcelFileOrderBean.doRemoveAbsentPositions}"
                                       value="Удалить отсутствующие на складе позиции"
                                       reRender="orderInfo,restsProblems,uploader"/>
                    <a4j:commandButton action="#{clientImportExcelFileOrderBean.doCancelAbsentPositions}"
                                       value="Отмена"
                                       reRender="orderInfo,restsProblems,uploader"/>
                </h:panelGroup>
            </h:panelGroup>

            <h:panelGrid columns="2" columnClasses="top,top">
                <h:panelGroup id="uploader">
                    <h:panelGroup rendered="#{empty clientImportExcelFileOrderBean.restsProblems and not clientImportExcelFileOrderBean.orderAvailable}">
                        <rich:fileUpload fileUploadListener="#{clientImportExcelFileOrderBean.listener}"
                                         immediateUpload="true"
                                         acceptedTypes="xls"
                                         allowFlash="true"
                                         onuploadcomplete="processUpload();"
                                         addControlLabel="Выбрать файл"
                                         cancelEntryControlLabel="Убрать файл"
                                         clearAllControlLabel="Очистить все"
                                         clearControlLabel="Очистить"
                                         doneLabel="Загружено"
                                         progressLabel="Загружается"
                                         stopControlLabel="Остановить"
                                         stopEntryControlLabel="Остановить"
                                         transferErrorLabel="Ошибка передачи данных"
                                         uploadControlLabel="Загрузить"
                                         maxFilesQuantity="10"/>
                    </h:panelGroup>
                </h:panelGroup>

                <h:panelGroup id="orderInfo">
                    <rich:panel rendered="#{clientImportExcelFileOrderBean.orderAvailable}">
                        <f:facet name="header">
                            <h:outputText value="Информация о заказе"/>
                        </f:facet>
                        <h:outputText
                                value="Ниже представлена информация о заказе, который Вы загрузили. Если все верно, нажмите \"Продолжить\". Если Вы нашли ошибку - нажмите \"Отмена\" и попробуйте выполнить всю процедуру сначала."/>

                        <rich:dataTable var="orderItem" value="#{clientImportExcelFileOrderBean.orderInfo.orderItems}"
                                        style="margin-top: 10px"
                                        rowKeyVar="row">
                            <f:facet name="header">
                                <h:outputText value="Информация о заказе"/>
                            </f:facet>
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="№"/>
                                </f:facet>
                                <h:outputText value="#{row + 1}."/>
                            </rich:column>
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Код"/>
                                </f:facet>
                                <h:outputText value="#{orderItem.good.code}"/>
                            </rich:column>
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Наименование"/>
                                </f:facet>
                                <h:outputText value="#{orderItem.good.name}"/>
                            </rich:column>
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Кол-во"/>
                                </f:facet>
                                <h:outputText value="#{orderItem.count}"/>
                            </rich:column>
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Стоимость 1 шт."/>
                                </f:facet>
                                <h:outputText value="#{orderItem.itemPrice} р."/>
                            </rich:column>
                            <rich:column>
                                <f:facet name="header">
                                    <h:outputText value="Стоимость позиции"/>
                                </f:facet>
                                <h:outputText value="#{orderItem.sum} р."/>
                            </rich:column>
                        </rich:dataTable>
                        <h:panelGroup style="margin-top: 10px" layout="block" styleClass="">
                            <h:outputText value="Все верно?" style="font-weight: bold;"/><br>
                            <h:panelGrid cellpadding="5" cellspacing="5" columns="2">
                                <a4j:commandButton value="Продолжить" style="font-weight: bold"
                                                   action="#{clientImportExcelFileOrderBean.saveOrder}"
                                                   oncomplete="document.location='ClientOrderItemPage.jsf'"/>
                                <a4j:commandButton value="Отмена" action="#{clientImportExcelFileOrderBean.cancelOrder}"
                                                   oncomplete="document.location='ClientImportExcelOrder.jsf'"/>
                            </h:panelGrid>
                        </h:panelGroup>
                    </rich:panel>
                </h:panelGroup>
            </h:panelGrid>
        </a4j:form>

    </h:panelGroup>
</f:view>
</body>
</html>